package kjh820909.basic;

import java.util.ArrayList;
import java.util.Iterator;

import kjh820909.model.SungJukVO;

public class J22_Collection {

	public static void main(String[] args) {
		// 컬렉션 프레임워크 다루기
		// ArrayList - 가변크기를 지원하는 배열
		
		// ArrayList 선언
		ArrayList sjdata = new ArrayList();
		// JDK1.5 이전방식으로 코드 작성
		
		// ArrayList에 데이터 추가(add(내용))
		sjdata.add(123);
		sjdata.add('가');
		sjdata.add(987.65);
		sjdata.add("xyz");
		
		// 특정위치에 데이터 추가(add(위치.내용))
		sjdata.add(2, new SungJukVO());		
		//sjdata.add(10, new SungJukVO()); //오류!
		// sjdata에는 총 5개의 데이터가 저장중
		// 따라서, 10번째 위치에 데이터 추가는 불가능
		
		// ArrayList상의 데이터 알아내기 (get(위치))
		System.out.println(sjdata.get(0));
		System.out.println(sjdata.get(2));
		//System.out.println(sjdata.get(10)); // 오류!
		
		// ArrayList에 저장된 데이터 갯수 알아내기(size())
		System.out.println(sjdata.size());
		
		// ArrayList에 저장된 데이터 제거(remove(위치))
		System.out.println(sjdata.get(3));
		sjdata.remove(3);
		System.out.println(sjdata.get(3));
		
		// ArrayList에 저장된 데이터 수정 (set(위치,값))
		sjdata.set(3, "abc");
		System.out.println(sjdata.get(3));
		
		// ArrayList의 데이터 찾기(contains(값))
		System.out.println(sjdata.contains(123));
		System.out.println(sjdata.contains('가'));
		System.out.println(sjdata.contains("xyz"));
		
		// ArrayList의 데이터 찾기(indexOf(값))
		System.out.println(sjdata.indexOf(123));
		System.out.println(sjdata.indexOf('가'));
		System.out.println(sjdata.indexOf("abc"));
		System.out.println(sjdata.indexOf("xyz"));
				
		// ArrayList의 데이터 모두제거(clear())
		sjdata.clear();
		
		// ArrayList의 데이터 존재여부(isEmpty())
		System.out.println(sjdata.isEmpty());
		
		// ArrayList 상의 모든 데이터 출력(1)
		sjdata.add("태희");
		sjdata.add("지현");
		sjdata.add("수지");
		sjdata.add("혜교");
		sjdata.add("지연");
		
		for(int i=0; i<sjdata.size(); ++i){
			System.out.print(sjdata.get(i));
		}
		// ArrayList 상의 모든 데이터 출력(2)
		// Iterator 인터페이스를 이용하면
		// 편리하게 collection의 요소들을 처리할 수 있음
		Iterator iter = sjdata.iterator();
		while(iter.hasNext()){
			System.out.print(iter.next());
		}
		
	}

}










